Ultimate Intervalometer
The Ultimate Intervalometer is a script for taking "timelapse" pictures over a long period of time, It is designed to run for week or months at a time. Applications include scenes like construction sites, flower gardens, or landscapes. Overview There are many excellent general purpose intervalometer scripts posted on the CHDK wiki and forum. Some simply take pictures repetitively while others are tuned for specific applications like sunsets, automobile routes, balloon flights or macro/HDR applications. The Ultimate Intervalometer is likewise specially tuned, but for long duration photo sessions - typically of outdoor scenes. In this application, the principal requirments are the ability to take pictures only during daylight hours, to be able to sync pictures from day to day, to run the camera on as little power as possible, to provide some visual clue that the script is still running, and to periodically restart the camera as neither CHDK or the Canon firmware was designed to continuously run for long durations. Features #Start shooting each day on any combination of a fixed time, dawn, or brightness. #Stop shooting each day when all combintations of a fixed time, dusk, and brightness are satisfied. #Day of week schedule to select on which days shooting will occur ( All, Mon-Fri, Sat-Sun ) #Periodic automated restarts of the camera to reset internal timer and assist with long term stability. #Support for all known power savings techniques ( backlight off. display off, sleep mode, playback mode) if supported by the camera model. #Interval shooting in sync to the time of day (e.g. 60 minute intervals always occur at the top of the hour, 30 minute intervals a the top and bottom of the hour, etc.) #Sets the zoom lens to a user define position (reset zoom to that position after periodic script intitiated restarts) #Optional LED slow blink to let you know the script is still running when the display is off. #Detailed logging of operation to SD card (optional). On Screen Display In addition to log messages in the normal script console, the Ultimate Intervalometer provides an on screen status box showing the current status of the shooting progress. Items displayed include : *current number of shots since last reset *time to next shot *Tv currently in use Tv shooting threshold *time to next camera reboot *daily time to start shooting *daily time to stop shooting *SD card space left *time to display blanking *shooting mode : Day (on) or Night (off) Note : colors of the status box will vary with different ports. You are not necessarily stuck wih the ugly lime green color in the attached screen shot. Application Notes #While the script is running, you can stop it "cleanly" by pressing the MENU key. Pressing any other key will cause the display/backlight to activate for about 30 seconds, allowing you to check the script status. Pressing anything other than MENU again will increment the amount of time that the display/backlight stays enabled. #When using just the internal camera battery, the script can run for about a day before the batteries are exhausted. This depends a lot on the camera model, battery type, battery age, number of shots per hour, and the power saving setting used by the script. So for long duration timelapse runs, an external power source (ideally some sort of UPS / battery / mains combination) is required. #While the script will periodically restart the camera and cause CHDK to restart the script, CHDK cannot be setup to restart the camera if the power to the camera actually fails. So a UPS battery backed supply is a really good idea. #The script does not know anything about "day light savings" time, so if you use the sunrise or sunset modes just leave your camera in "standard time". #The script uses features of the 1.2.0 version of CHDK and will not run on the 1.0.0 or 1.1.0 versions. #As always, CHDK is experimental and running a camera for week or months at a time is our on the "bleeding edge" of experimental. Use at your own risk. Parameter Setup Shot Interval Specifies the time between shots. Note that the shot time is sync'd to the time of day, so a 1hr interval will cause shots to occur at the top of each hour, 15 minute interval will shoot at a quarter past, half past, quarter to and on the hour, etc values 1min 2min 5min 10min 15min 30min 1hr 2hr 4hr default 2min Zoom position Specifies the position to set the zoom lens at the start of shooting in "zoom steps" for the camera. This is necessary to ensure that the zoom returns to the same position each time the intervalometer periodically resets the camera. range 0 - n (note : script checks available zoom steps and limits to that range) default 0 Start at dawn? Tells the intervalometer to calculate the time of sunrise and begin interval shooting at that time. values enable/disable default disabled End at dusk? Tells the intervalometer to calculate the time of sunset and stop interval shooting at that time. values enable/disable default disabled Starting Hour (24 Hr) Combines with Starting Minute (below) to specify a time a which the intervalometer will switch into "Day" mode and begin interval shooting. If sunrise mode is enabled, or Tv mode is enabled, then this value can be overriden and shooting can start earlier. range 0 23 default 9 Starting Minute range 0 59 default 0 Ending Hour (24 Hr) Combines with Ending Minute (below) to specify a time a which the intervalometer will switch into "Night" mode and stop interval shooting. If sunset mode is enabled, or Tv mode is enabled, then this value can be overridden by those settings and shooting will continue later. range 0 23 default 17 Ending Minute range 0 59 default 0 Day of Week Tells the intervalometer to shoot every day, only on week days or only on weekends. values All Mon-Fri Sat&Sun default All Shoot when Tv > Specifies a shutter speed value that wil cause the intervalometer to start interval shooting regardless of the day start or stop settings. Note that many cameras will not reduce the shutter speed below 1 second in P or Auto mode so setting to 2sec may cause the intervalometer to run continuously. values Off 2sec 1sec 1/2 1/4 1/8 1/30 1/60 default Off Days between resets The ultimate intervalometer script will periodically force a complete camera reset and then restart itself. This resets the camera tic timer before it overflows and also anything else that was not designed to run for long periods of time. Note that the scripts shot counter clears to zero at each reset. range 1 14 default 1 Status LED With the LCD blanked/off, it can be difficult to know that the script is still running. Specifying an LED here will cause it to blink briefly every few seconds, giving positive feedback that the script is still operational even when the display is off. The value to use for each LED is camera implementation dependent - some experimentation may be required. values Off 1 2 3 4 5 6 7 8 default Off Display blanking mode values None BKLite DispKey PlayKey ShrtCut default None Latitude Latitude for sunrise/sunset calculations. Set to degrees * 10, positive for northern hemisphere, negative for southern hemisphere. Ex : for New York, NY, USA, set to 407, for Berlin, Germany set to 525. default 234 Longitude Longitude for sunrise/sunset calculations. Set to degrees * 10. Positive values for locations east of 0 deg and, negative for locations west of 0 deg. Ex : for New York, NY, USA set to -740 for Berlin, Germany set to 135 default -845 UTC Coordinated Univeral Time offset for sunrise / sunset calculations. Ex : for New York, NY, USA use -5, for Berlin, Germany use 1. default -5 Logging Specifies where log message go. This does not affect information displayed on the on screen GUI box. values Off Screen SDCard Both default Both The Script -- Ultimate Intervalometer v1.2 @title Ultimate v1.2 @param a Shot Interval @default a 2 @values a 1min 2min 5min 10min 15min 30min 1hr 2hr 4hr @param b Zoom position @default b 0 @range b 0 100 @param c Start at dawn? @default c 1 @range c 0 1 @param d End at dusk? @default d 1 @range d 0 1 @param e Starting Hour (24 Hr) @default e 5 @range e 0 23 @param f Starting Minute @default f 0 @range f 0 59 @param g Ending Hour (24 Hr) @default g 18 @range g 0 23 @param h Ending Minute @default h 0 @range h 0 59 @param i Day of Week @default i 0 @values i All Mon-Fri Sat&Sun @param j Start on Tv value @default j 0 @values j Off 1sec 1/5 1/10 1/20 1/30 1/60 @param l Days between resets @default l 1 @range l 1 14 @param m Status LED @default m 0 @values m Off 1 2 3 4 5 6 7 8 @param n Display blanking mode @default n 0 @values n None BKLite DispKey PlayKey ShrtCut @param o Latitude @default o 234 @param p Longitude @default p -845 @param q UTC @default q -5 @param r Logging @default r 3 @values r Off Screen SDCard Both -- require("drawings") props=require("propcase")